home *** CD-ROM | disk | FTP | other *** search
- Path: sdcc12.ucsd.edu!cs!galvarez
- From: galvarez@cs.ucsd.edu (Guillermo Alvarez)
- Newsgroups: comp.sys.cbm
- Subject: datapump.doc
- Date: 10 Jan 1996 19:42:51 GMT
- Organization: CSE Dept., U.C. San Diego
- Distribution: world
- Message-ID: <4d14rr$lgs@sdcc12.ucsd.edu>
- NNTP-Posting-Host: beowulf.ucsd.edu
-
-
- there seem to be problems with the .zip, so I'm reposting...
-
- ----------------------------------------------------------------------------
- "DATAPUMP" THE 6551 ACIA CARD
- (C)opyright Perry M. Grodzinski, 1991
-
- Note: You are free to give away these documents but not to sell! SWIFTLINK is a
- Trademark of CMD (Creative Micro Designs).
-
- Although this project is very simple to construct, some electronic experience
- would be beneficial. The author takes no responsibility for this modification as
-
- this project is to be done at the risk of the reader.
-
- With the price of high speed modems quickly falling, home computer users can now
-
- have 9600 bits per second modems for the price that 300 BPS once cost.
- Unfortunately, anything above 2400 BPS for the c64 is a problem, it just can't
- keep up. Most of the serial to parallel and other bit handling is done from the
- CIA 6526 chip and intensive code. Other Commodore's of the past like the
- SuperPET, B series, and +4, all used another means to achieve the serial
- conversion. By using an IC known as a UART (Universal Asynchronous Receiver
- Transmitter), These machines were able to handle a much higher bit rate than
- what can be achieved with a C64. The UART used is known as the R6551 ACIA
- (Asynchronous Communications Interface Adapter). It can also be noted that this
- is also the UART used in the CMD SWIFTLINKTM. The design presented here allows
- the C64 to communicate at speeds of up to 38,400 BPS. Although I have not tested
-
- at the higher end speeds, I do use this design to communicate with my modem at
- 19,200 BPS without any problems. Purchasing a SWIFTLINK from a Canadian supplier
-
- was a tad costly for me and was not going to challenge me as an electronic
- project so I decided to try to build a card around the 6551. Thus the DATAPUMP!
- After receiving the 6551 and specification sheets, I was very pleasantly
- surprised to see that this was going to be a breeze. It was as though the 6551
- was built for interfacing to the C64. No fancy interfacing was required at all.
- All that had to be done was Hook It UP! Looking further into the spec sheets I
- found that the maximum speed with the recommended crystal was 19,200 bits per
- second. Knowing that terminal programs like Fritzterm, and Novaterm had maximum
- speed settings of 38,400 BPS for use with Swiftlink, it quickly hit me that CMD
- was doubling the speed. I quickly looked through the parts catalog and found
- there to be a crystal of a standard speed exactly double of the frequency on the
-
- spec sheet, so I ordered it. After getting my card built I found that indeed a
- double speed crystal was what was used in the design of the Swiftlink. By the
- way, for the record let me mention here and now, that my design, even though it
- may appear to be in some ways, is not a Swiftlink clone. That is to say I had
- never even seen what the case of one looked like, let alone the insides.
- Actually at the date of this writing, I still haven't seen a Swiftlink! Now with
-
- the legality questions out of the way lets go build a DATAPUMP!
-
- The heart and soul of the DATAPUMP is of course the 6551. I used one
- manufactured by Rockwell. Again interfacing the 6551 to the C64 is very simple.
- The 6551 pinout is as follows :
-
- Pin# Label Function Pin# Label Function
- ---- ----- -------- ---- ----- --------
- 1) GND Ground 28) R/W Read/Write
- 2) CS0 Chip Select High 27) Ph2 Phase 2 clock
- 3) /CS1 Chip Select Low 26) /IRQ Interrupt Request
- 4) /RES Reset 25) DB7 Data Bus 7
- 5) RxC Receive Clock 24) DB6 Data Bus 6
- 6) XTL1 Crystal leg 23) DB5 Data Bus 5
- 7) XTL2 Crystal leg 22) DB4 Data Bus 4
- 8) /RTS Request To Send 21) DB3 Data Bus 3
- 9) /CTS Clear To Send 20) DB2 Data Bus 2
- 10) TxD Transmit Data 19) DB1 Data Bus 1
- 11) /DTR Data Terminal Ready 18) DB0 Data Bus 0
- 12) RxD Receive Data 17) /DSR Data Set Ready
- 13) RS0 Register Select Bit 0 16) /DCD Data Carrier Detect
- 14) RS1 Register Select Bit 1 15) Vcc +5 Volt
-
- I'll further explain some of these pins and their functions. To select the chip
- (to read/write to it) CS0 must be high and CS1 must be low. So we'll use I/O1 to
-
- select the chip as it is active low. We tie CS0 permanently high and toggle the
- chip by changing I/O1. I/O1 goes low whenever a read or write to $DExx takes
- place. Note that you can use I/O2 here and map the 6551 to $DFxx if you wish,
- but be aware that this will put the 6551 in conflict with a REU. /RES could be
- tied to the/reset signal coming from the C64, I chose not to do this for my
- purpose as I can do a hard reset from my C64, do whatever such as load a
- different communications package and be back without resetting my 6551 which
- would cause my modem to disconnect. I leave this up to you but make sure this
- line if pulled up via R1 even if you connect your 64 /res here. A0 and A1
- connected to RS0 and RS1 allow the registers of the 6551 to be selected from
- $DE00 through to $DE03. R2 through R4 must be inplace to cause the conditions to
-
- be true on CTS, DCD, and DSR, when no modem is connected to the the 6551. If
- these states are not true the 6551 can generate interrupts that if not properly
- handled with software can cause the C64 to hang rudely. Pins 10,11,12,15,16,17
- and gnd, all make up the RS232C serial output. To follow the RS232C voltage
- standards I used the common 1488 RS232 driver and the 1489 receiver. The only
- hassle is with the fact that the 1488 requires two 9 - 15 volt power supplies.
- One supply ties its negative to ground and positive to pin 14 of the 1488. The
- other supply has its positive side tied to ground and its negative side
- connected to pin 1 of the 1488. To acquire the two 12 volt supplies, I used a +5
-
- volt to +/- 12 volt dc to dc converter made by a firm called Astec. I removed
- this converter from an old junk board that was a serial card for a Radio Shack
- TRS-80 Model 1 micro. If you have problems finding such a part, there are many
- alternatives to achieving these voltages. You could steal the 9v ac supply off
- of the user port and through a network of diodes and capacitors create two 9v dc
-
- supplies. Another would be to use an external center tap 24 volt transformer and
-
- create two 12 volt dc supplies. To get by you could also simply use two 9 volt
- batteries. The reason I chose the converter was that I could then build the
- entire DATAPUMP, power and all on one card and use the 5v coming from the C64.
- C1 through to C7 and L1 and L2 are simply used for filtering on the converter.
-
- Construction is very easy and no previous training in rocket science is
- necessary. however basic knowledge in electronics and soldering would be an
- asset. The entire project is built on a single card plugged into the expansion
- port of the C64. I used a Radio Shack part 276-192. It is a 72-position plug-in
- board with .100" contact centers. US friends should check the RS numbers as I am
-
- unsure if Radio Shack uses the same part numbers in the US as they do in Canada.
-
- The card edge must be carefully cut down of course to match the 44 pin expansion
-
- port female on the back of the C64. Once this is done you now have a large 4.5"
- X 5.7" card to add more than the DATAPUMP if you wish. On my card, I have the
- DATAPUMP project, a couple of eproms, and another female 44 pin for my REU, and
- a few other goodies. I used sockets on all the IC's except for the DC-DC
- converter. On my external cards I always use single core copper telephone wire
- for circuit trace connections, and never have problems with noise.
-
- I hope you enjoy this project as much as i did. I know you'll love the the
- ability to really cruise at 19,200 BPS. To date I have found few terminal
- programs that could really make the card hum. Terminal 1 is one terminal package
-
- that works very well. Fritzterm also flys along and keeps the C64 right up to
- snuff with the 6551. Novaterm 9.3 also supports the 6551 but becomes
- undependable at speeds higher than 2400. I mentioned this to the author so maybe
-
- we'll see this in his next release. Although this interface was designed for the
-
- C64 It could easily be adapted to the 128 as well. Of course, from what I
- understand, on the 128, a 6551 is not required unless the user wishes to
- transceive at speeds higher than 9600 BPS.
-
- If you have any questions comments or suggestions, please contact me at :
-
- Perry Grodzinski
- 30 Fyfe Street
- Regina, Sask. Canada
- S4X-1J8
-
-
-
- I also hang out on the CBM Echo and can be reached there.
- GOD BLESS !
-
-
- --------------------------------------------------------------------------------
-
- Translators note: the original DATAPUMP instructions were in geoWrite (this
- document) and geoPaint (the circuit itself). This document has been translated
- into straight ASCII, and the circuit is now in DATAPUMP.MAC, a MacPaint file,
- which can be printed out using almost any MacPaint to 64 utility.
-
-
-